namespace java com.mama100.rpc.mdp.thrift.inout

include "common.thrift"


/*绑定客户品牌-请求对象*/
struct BindCustBrandRequest{
1:common.BaseRequest baseReq
2:i64 customerId	/*客户id*/
3:i64 brandId	/*品牌id*/
4:string updateBy	/*更新人*/
5:string fromSystem	/*来源系统*/
}

/*解绑客户品牌-请求对象*/
struct UnBindCustBrandRequest{
1:common.BaseRequest baseReq
2:i64 customerId	/*客户id*/
3:i64 brandId	/*品牌id*/
4:string updateBy	/*更新人*/
5:string fromSystem	/*来源系统*/
}

/*客户品牌-传输对象*/
struct TCustBrand{
1:i64 customerId	/*客户id*/
2:i64 brandId	/*品牌id*/
3:i64 updateTime	/*更新时间*/
4:string updateBy	/*更新人*/
5:string fromSystem	/*来源系统*/
}

/*获取客户品牌-请求对象*/
struct GetCustBrandRequest{
1:common.BaseRequest baseReq
2:i64 customerId	/*客户id*/
}

/*获取客户品牌-返回对象*/
struct GetCustBrandResponse{
1:common.BaseResponse baseResp
2:list<TCustBrand> value /*返回列表*/
}

/*绑定客户门店-请求对象*/
struct BindCustTerminalRequest{
1:common.BaseRequest baseReq,
2:i64 customerId	/*客户id*/
3:i64 terminalCode	/*门店编码*/
4:string updateBy	/*更新人*/
5:string fromSystem /*来源系统*/
}

/*解绑客户门店-请求对象*/
struct UnBindCustTerminalRequest{
1:common.BaseRequest baseReq,
2:i64 customerId	/*客户id*/
3:i64 terminalCode	/*门店编码*/
4:string updateBy	/*更新人*/
5:string fromSystem	/*来源系统*/
}

/*客户门店传输对象*/
struct TCustTerminal{
1:i64 customerId	/*客户id*/
2:i64 terminalCode	/*门店编码*/
3:i64 updateTime	/*更新时间*/
4:string updateBy	/*更新人*/
5:string fromSystem	/*来源系统*/
}

/*获取客户门店-请求对象*/
struct GetCustTerminalRequest{
1:common.BaseRequest baseReq
2:i64 customerId	/*客户id*/
}

/*获取客户门店-返回对象*/
struct GetCustTerminalResponse{
1:common.BaseResponse baseResp
2:list<TCustTerminal> value	/*返回列表*/
}

/*根据门店编码获取客户-请求对象*/
struct GetCustTerminalByTerminalCodeRequest{
1:common.BaseRequest baseReq
2:i64 terminalCode	/*门店编码*/
}

/*根据门店编码获取客户-返回对象*/
struct GetCustTerminalByTerminalCodeResponse{
1:common.BaseResponse baseResp
2:list<TCustTerminal> value	/*返回列表*/
}



/************************/
/************************/



/***********会员积分记录批量接口参数*************/
struct 	GetCustPointBatchRequest{
1:common.BaseRequest baseReq
2:string	name				/*会员姓名 模糊查询*/
3:string	mobilePhone			/*手机号码 精确查询*/
4:string	phone				/*固话 精确查询*/
5:string	productName			/*产品名称 模糊查询*/
6:string	pointStatus			/*积分状态 精确查询*/
7:string	terminalName		/*门店名称  模糊查询*/
8:i32		startTime			/*积分开始时间  精确查询*/
9:i32		endTime				/*积分结束时间  精确查询*/
10:string	createdBySystem		/*创建来源  精确查询*/
11:string	terminalCode		/*终端编号（必传） 精确查询*/
12:i32		firstResult			/*分页参数  */
13:i32		maxResult			/*分页参数   */
}



struct 	TCustPoint{
1:string	id					/*流水号*/
2:string	name				/*会员姓名*/
3:string	productName			/*产品名称*/
4:i32		point				/*分值*/
5:i32		pointType			/*积分类型*/
6:string	createdBySystem		/*创建来源*/
7:i32		pointStatus			/*积分状态*/
8:string	registerDate		/*积分时间*/

}

struct 	GetCustPointBatchResponse{
1:common.BaseResponse baseResp
2:list<TCustPoint> value
}


/***********订单报表数据接口参数*************/
struct 	GetOrderReportRequest{
1:common.BaseRequest baseReq
2:string	startTime			/*积分开始时间  精确查询*/
3:string	endTime				/*积分结束时间  精确查询*/
4:string	sourceSystem		/*来源  精确查询*/
5:string	terminalCode		/*门店编码*/
}

struct 	GetOrderReportResponse{
1:common.BaseResponse baseResp
2:double		orderBalance			/*积分金额*/
3:i64		orderCount					/*积分笔数*/
4:i64		orderPoint					/*积分分值*/
5:i64		orderCustomer				/*积分客户*/
6:double		orderCustomerPoint		/*客单积分*/
7:double		orderCustomerBalance	/*客单金额*/
8:double		orderPointPer			/*O2O订单积分占比*/
}

/***********会员归属*************/

/*会员归属-传输对象*/
struct TCustBelong{
1:i64     customerId	 /*会员id*/
2:string  terminalCode	 /*门店编码*/
3:i32     fromType       /*来源类型入口  1会员领卡 2会员最喜欢门店 3会员邀请码 4会员交易完成*/
4:string  fromSystem	 /*来源系统*/
5:i64     createdTime    /*创建时间*/
6:i64     expiryTime     /*过期时间*/
7:i64     updatedTime	 /*更新时间*/
}

/*会员归属门店-请求对象*/
struct GetTCustBelongTerminalRequest{
1:common.BaseRequest  baseReq
2:i64      customerId	  /*会员id*/
3:string   terminalCode	  /*门店编码*/
4:i32      fromType       /*来源类型入口 1会员领卡 2会员最喜欢门店 3会员邀请码 4会员交易完成*/
5:string   orderId   /*订单ID*/
6:string   fromSystem	  /*来源系统*/
}

/*根据会员id获取会员归属信息-请求对象*/
struct GetTCustBelongByCustomerIdRequest{
1:common.BaseRequest baseReq
2:i64 customerId	/*会员id*/
}

/*根据门店编码获取会员归属信息-请求对象*/
struct GetTCustBelongByTerminalCodeRequest{
1:common.BaseRequest baseReq
2:string    terminalCode	/*门店编码*/
3:i32		firstResult	    /*分页参数  */
4:i32		maxResult		/*分页参数   */
}

/*根据会员id获取会员归属信息-返回对象*/
struct GetTCustBelongByCustomerIdResponse{
1:common.BaseResponse baseResp
2:TCustBelong value /*返回会员与门店对象*/
}

/*根据门店编码获取会员归属信息-返回对象*/
struct GetTCustBelongByTerminalCodeResponse{
1:common.BaseResponse baseResp
2:list<TCustBelong> value /*返回列表*/
}

/***********门店分佣 terminal Commission*************/

/*分佣明细-传输对象*/
struct TCommissionDetail{
1:i64      id                 /*记录标识*/
2:string   customerName       /*会员姓名*/
3:double   commissionCharge   /*收入或扣减金额*/
4:string   bankDesc	          /*开户行*/
5:string   cardLast4	      /*卡号后4位*/
6:i64      orderId            /*订单编号*/
7:string   terminalName       /*下单门店*/
8:double   orderCharge        /*贷款金额*/
9:i64      orderTime          /*下单时间*/
10:i64     commissionTime     /*分佣时间*/
11:i64     transferTime       /*结算或扣款时间*/
12:i32     settleType         /*结算类型*/
13:i32     orderType           /*订单类型*/
}

/*分佣汇总-传输对象*/
struct TCommission{
1:double   paidCommission	 	/*已划款分佣收入*/
2:double   unpaidCommission	/*未划款分佣收入*/
3:double   totalCommission   	/*分佣收入总额*/
}



/*汇总分佣-请求对象*/
struct GetAggregateCommissionRequest{
1:common.BaseRequest baseReq
2:string  terminalCode	/*门店编码*/
3:i64     startTime     /*开始时间*/
4:i64     endTime       /*结束时间*/
}

/*分佣明细列表-请求对象*/
struct GetCommissionDetailsRequest{
1:common.BaseRequest baseReq
2:string  terminalCode	/*门店编码*/
3:i64     startTime     /*开始时间*/
4:i64     endTime       /*结束时间*/
5:i32     settleStatus  /*结算状态*/
6:i32	  firstResult	/*分页参数  */
7:i32	  maxResult		/*分页参数   */
}

/*单个分佣明细-请求对象*/
struct GetCommissionDetailByIdRequest{
1:common.BaseRequest baseReq
2:i64  id	/*记录标识*/
}

/*汇总分佣-返回对象*/
struct GetAggregateCommissionResponse{
1:common.BaseResponse baseResp
2:TCommission value   /*分佣汇总-传输对象*/
}

/*分佣明细列表-返回对象*/
struct GetCommissionDetailsResponse{
1:common.BaseResponse baseResp
2:list<TCommissionDetail> value /*返回列表*/
}

/*单个分佣明细-返回对象*/
struct GetCommissionDetailByIdResponse{
1:common.BaseResponse baseResp
2:TCommissionDetail  value   /*分佣明细-传输对象*/
}









